/**
 * 资源视图对象
 */
export interface CourseResourceVo {
    /**
     * 备份资源id，防止某个资源平台挂了，可以到备份平台看
     */
    backupId?: string;
    /**
     * 码率，单位：Kbps
     */
    bitrate?: number;
    /**
     * 数据创建者
     */
    createBy?: string;
    /**
     * 数据创建时间
     */
    createTime?: Date;
    /**
     * 删除标志，（0代表存在 2代表删除）
     */
    delFlag?: string;
    /**
     * 高度
     */
    height?: number;
    /**
     * 主键
     */
    id?: string;
    /**
     * 时长
     */
    length?: number;
    /**
     * 资源名称
     */
    name: string;
    /**
     * 是否让机构外的用户使用，(0:私有，1:公有)
     */
    open?: boolean;
    /**
     * 排序
     */
    orderNum?: number;
    /**
     * 机构id
     */
    organizationId?: string;
    /**
     * 资源引用数
     */
    refCount?: number;
    /**
     * 备注
     */
    remark?: string;
    /**
     * 资源平台名称，如阿里云，腾讯云等等
     */
    resourcePlatform?: string;
    /**
     * 资源大小
     */
    resourceSize?: number;
    /**
     * 资源上传状态，(0：上传中，1：上传成功，2：上传失败)
     */
    resourceStatus?: number;
    resourceStatusMsg?: string;
    /**
     * 资源类型，(1:视频2:音频)
     */
    resourceType?: string;
    resourceTypeMsg?: string;
    /**
     * 资源地址
     */
    resourceUrl?: string;
    /**
     * 已关联课程
     */
    sectionList?: CourseSectionVo[];
    /**
     * 状态，(1:正常，0:禁用)
     */
    status?: string;
    statusMsg?: string;
    /**
     * 数据更新者
     */
    updateBy?: string;
    /**
     * 数据更新时间
     */
    updateTime?: Date;
    /**
     * 上传者id
     */
    userId?: string;
    /**
     * vid
     */
    vid?: string;
    /**
     * 宽度
     */
    width?: number;
}

/**
 * 章节信息vo，必修章节信息
 */
export interface CourseSectionVo {
    /**
     * 允许评论，（0:不允许，1:允许）
     */
    allowComment?: boolean;
    /**
     * 评论数
     */
    commentNum?: number;
    /**
     * 是否完成
     */
    complete?: boolean;
    /**
     * 课程ID
     */
    courseId: string;
    /**
     * 所属课程名称
     */
    courseName?: string;
    /**
     * 数据创建者
     */
    createBy?: string;
    /**
     * 数据创建时间
     */
    createTime?: Date;
    /**
     * 章节描述
     */
    description: string;
    /**
     * 是否免费，(1免费，0收费)
     */
    free?: boolean;
    /**
     * 高度
     */
    height?: number;
    /**
     * 主键
     */
    id: string;
    /**
     * 章节信息
     */
    length?: number;
    /**
     * 章节名称
     */
    name: string;
    /**
     * 排序
     */
    orderNum?: number;
    /**
     * 章节进度
     */
    progress?: number;
    /**
     * 关联资源主键
     */
    resourceId: string;
    /**
     * 资源类型
     */
    resourceType?: string;
    /**
     * 脚本，（可以为富文本）
     */
    script?: string;
    /**
     * 状态，(1:正常，0:禁用)
     */
    status?: string;
    /**
     * 学习人数
     */
    studyNum?: number;
    /**
     * 数据更新者
     */
    updateBy?: string;
    /**
     * 数据更新时间
     */
    updateTime?: Date;
    /**
     * vid
     */
    vid?: string;
    /**
     * 宽度
     */
    width?: number;
}

//////////////////////////////////////////////////////////////////

export interface VodUploadAuth {
    /**
     * 额外消息
     */
    extraInfo?: { [key: string]: { [key: string]: any } };
    /**
     * 服务提供商
     */
    service?: string;
    /**
     * 上传地址
     */
    uploadAddress?: string;
    /**
     * 上传授权
     */
    uploadAuth?: string;
    /**
     * vid
     */
    vid?: string;
}

/////////////////////////////////////////////////////////////////////

/**
 * 用户信息视图对象
 */
export interface SysUserVo {
    /**
     * 用户头像
     */
    avatar?: string;
    /**
     * 是否属于该角色
     */
    belong?: boolean;
    /**
     * 数据创建者
     */
    createBy?: string;
    /**
     * 数据创建时间
     */
    createTime?: Date;
    /**
     * 删除标志，（0代表存在 2代表删除）
     */
    delFlag?: string;
    /**
     * 用户邮箱
     */
    email?: string;
    /**
     * 是否参与审批
     */
    examine?: boolean;
    /**
     * 用户ID
     */
    id?: number;
    /**
     * 所属身份
     */
    identityList?: SysIdentityVo[];
    /**
     * 岗位
     */
    job?: string;
    /**
     * 最后登录时间
     */
    loginDate?: Date;
    /**
     * 最后登录IP
     */
    loginIp?: string;
    /**
     * 用户昵称
     */
    nickName: string;
    organizationDataScope?: BaseDataScope;
    /**
     * 所属机构id
     */
    organizationId: number;
    /**
     * 所属组织名称
     */
    organizationName?: string;
    /**
     * 密码
     */
    password?: string;
    /**
     * 手机号
     */
    phoneNumber?: string;
    regionDataScope?: BaseDataScope;
    /**
     * 所属区域
     */
    regionId?: number;
    /**
     * 所属地区
     */
    regionName?: string;
    /**
     * 备注
     */
    remark?: string;
    /**
     * 角色对象
     */
    roles?: SysRoleVo[];
    /**
     * 用户性别
     */
    sex?: string;
    /**
     * 帐号状态，（0正常 1停用 2禁言 3未确定）
     */
    status?: string;
    /**
     * 是否超级管理员
     */
    superAdmin?: boolean;
    /**
     * 数据更新者
     */
    updateBy?: string;
    /**
     * 数据更新时间
     */
    updateTime?: Date;
    /**
     * 用户名
     */
    userName: string;
    /**
     * 用户类型，sys_user系统用户
     */
    userType?: string;
}

/**
 * 用户身份对象bo，用户身份
 */
export interface SysIdentityVo {
    /**
     * 数据创建者
     */
    createBy?: string;
    /**
     * 数据创建时间
     */
    createTime?: Date;
    /**
     * 删除标志，（0代表存在 2代表删除）
     */
    delFlag?: string;
    /**
     * 身分主键
     */
    id?: number;
    /**
     * 身份key
     */
    key: string;
    /**
     * 身份名称，（运营 ,校长, 专家 ,课程发布人员）
     */
    name: string;
    /**
     * 备注
     */
    remark?: string;
    /**
     * 是否固化，固化是禁止修改删除的
     */
    solid?: boolean;
    /**
     * 帐号状态（0正常 1停用）
     */
    status?: string;
    /**
     * 数据更新者
     */
    updateBy?: string;
    /**
     * 数据更新时间
     */
    updateTime?: Date;
}

/**
 * 机构数据范围
 */
export interface BaseDataScope {
    allow?: number[];
    deny?: number[];
}

/**
 * 角色信息视图对象
 */
export interface SysRoleVo {
    /**
     * 数据创建者
     */
    createBy?: string;
    /**
     * 数据创建时间
     */
    createTime?: Date;
    /**
     * 删除标志，（0代表存在 2代表删除）
     */
    delFlag?: string;
    /**
     * 角色ID
     */
    id: number;
    /**
     * 身份id列表
     */
    identityIdList?: number[];
    /**
     * 角色权限
     */
    key?: string;
    /**
     * 菜单树选择项是否关联显示，（ 0：父子不互相关联显示 1：父子互相关联显示）
     */
    menuCheckStrictly?: boolean;
    /**
     * 角色名称
     */
    name: string;
    /**
     * 角色排序
     */
    orderNum: number;
    /**
     * 父节点id列表
     */
    parentIdList?: number[];
    /**
     * 角色权限id
     */
    permissionIds?: number[];
    /**
     * 角色权限
     */
    permissions?: SysPermissionVo[];
    /**
     * 备注
     */
    remark?: string;
    /**
     * 子节点id列表
     */
    sonIdList?: number[];
    /**
     * 角色状态，（0正常 1停用）
     */
    status?: string;
    /**
     * 是否超级管理员
     */
    superAdmin?: boolean;
    /**
     * 角色人数
     */
    totalPeople?: number;
    /**
     * 数据更新者
     */
    updateBy?: string;
    /**
     * 数据更新时间
     */
    updateTime?: Date;
    /**
     * 用户是否属于此角色，默认不属于
     */
    userBelong?: boolean;
}

/**
 * 菜单权限视图对象
 */
export interface SysPermissionVo {
    /**
     * 是否缓存
     */
    cached?: boolean;
    /**
     * 子权限
     */
    children?: SysPermissionVo[];
    /**
     * 权限标识编码
     */
    code?: string;
    /**
     * 组件路径
     */
    component?: string;
    componentInfo?: string;
    /**
     * 数据创建者
     */
    createBy?: string;
    /**
     * 数据创建时间
     */
    createTime?: Date;
    /**
     * 是否为外链
     */
    frame?: boolean;
    /**
     * 界面图标
     */
    icon?: string;
    /**
     * 权限ID
     */
    id?: number;
    innerLink?: boolean;
    menuFrame?: boolean;
    /**
     * 后端请求方法
     */
    method?: string;
    /**
     * 权限名称
     */
    name?: string;
    /**
     * 显示顺序
     */
    orderNum?: number;
    /**
     * 父权限ID
     */
    parentId?: number;
    /**
     * 父权限名称
     */
    parentName?: string;
    parentView?: boolean;
    /**
     * 路由地址
     */
    path?: string;
    /**
     * 路由参数
     */
    queryParam?: string;
    /**
     * 备注
     */
    remark?: string;
    /**
     * 请求的模型主键
     */
    requestModelId?: number;
    /**
     * 后端请求路径
     */
    requestPath?: string;
    /**
     * 返回的模型主键
     */
    returnModelId?: number;
    routeName?: string;
    routerPath?: string;
    /**
     * 菜单状态，（0正常 1停用）
     */
    status?: string;
    /**
     * 权限类型，（D目录 M菜单 B按钮 O其他）
     */
    type?: string;
    /**
     * 数据更新者
     */
    updateBy?: string;
    /**
     * 数据更新时间
     */
    updateTime?: Date;
    /**
     * 显示状态
     */
    visible?: boolean;
}

//////////////////////////////////////////////////////////////

export interface VodPlayAuth {
    /**
     * 当前看的位置
     */
    currentTime?: number;
    /**
     * 音视频长度
     */
    duration?: number;
    /**
     * 播放授权
     */
    playAuth?: string;
    /**
     * 播放授权截止时间，当前时间+超时时间的毫秒值
     */
    playAuthTimeOut?: number;
    /**
     * vid
     */
    vid?: string;
}
